#include <iostream>
#include <vector>
#include <unordered_map>
#include <sstream>

using namespace std;

// 生成下一个骰子点数
int nextDice(int last, int A, int B) {
    return ((long long)A * last + B) % 6 + 1;
}

// 计算实际落点（处理越界反弹）
int moveTo(int current, int step, int N) {
    int total = current + step;
    if (total < N) return total;
    int loop = (total - (N - 1)) * 2;
    return (N - 1) - (total - (N - 1)) % loop;
}

// 处理传送逻辑
int landOn(int pos, const vector<int>& board) {
    while (board[pos] != -1) {
        pos = board[pos];
    }
    return pos;
}

string playGame(int N, int A, int B, int C, const vector<string>& grid) {
    vector<int> board(N, -1); // 默认是传送格子，-1 是普通格子
    for (int i = 0; i < N; ++i) {
        if (grid[i] == "N") {
            board[i] = -1;
        } else {
            board[i] = stoi(grid[i].substr(1)); // 如 "G3" -> 3
        }
    }

    int posLele = 0, posYueyue = 0;
    bool visited[200] = {false}; // 标记当前哪些格子有人
    visited[0] = true;

    int currentDice = (A * C + B) % 6 + 1;
    int turn = 0;

    while (true) {
        int& currentPlayerPos = (turn % 2 == 0) ? posLele : posYueyue;

        // 移动
        int nextPos = moveTo(currentPlayerPos, currentDice, N);
        nextPos = landOn(nextPos, board);

        // 如果目标是终点
        if (nextPos == N - 1) {
            return (turn % 2 == 0) ? "Lele" : "Yueyue";
        }

        // 被踢的情况
        if (visited[nextPos] && currentPlayerPos != nextPos) {
            if (posLele == nextPos) posLele = 0, visited[nextPos] = false;
            if (posYueyue == nextPos) posYueyue = 0, visited[nextPos] = false;
        }

        // 更新位置和标记
        if (currentPlayerPos != 0) visited[currentPlayerPos] = false;
        currentPlayerPos = nextPos;
        visited[nextPos] = true;

        // 下一个骰子
        currentDice = nextDice(currentDice, A, B);
        turn++;
    }
}

int main() {
    int N, A, B, C;
    string line;
    while (cin >> N >> A >> B >> C) {
        cin.ignore(); // 忽略换行符
        getline(cin, line);
        stringstream ss(line);
        vector<string> grid;
        string cell;
        while (ss >> cell) {
            grid.push_back(cell);
        }
        cout << playGame(N, A, B, C, grid) << endl;
    }
    return 0;
}